import { runDocTest } from '../helpers';

describe('pdfmake', function() {
  test('text decorations', function() {
    return runDocTest(function(doc) {
      doc.font('tests/fonts/Roboto-Regular.ttf');
      doc.fillColor('yellow');
      doc.fillOpacity(undefined);
      doc.rect(40, 40, 86.0712890625, 21.09375);
      doc.fill();
      doc.fillColor('yellow');
      doc.fillOpacity(undefined);
      doc.rect(126.0712890625, 40, 30.216796874999996, 21.09375);
      doc.fill();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(18);
      doc.text('Higlighted ', 40, 40, {
        lineBreak: false,
        textWidth: 86.0712890625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(18);
      doc.text('text', 126.0712890625, 40, {
        lineBreak: false,
        textWidth: 30.216796874999996,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text(' ', 37.029296875, 61.09375, {
        lineBreak: false,
        textWidth: 2.970703125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Underline ', 40, 75.15625, {
        lineBreak: false,
        textWidth: 53.361328125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('decoration', 93.361328125, 75.15625, {
        lineBreak: false,
        textWidth: 56.900390625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(40, 87.237421875, 110.26171875, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Line ', 211.76, 75.15625, {
        lineBreak: false,
        textWidth: 25.318359375,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Through ', 237.078359375, 75.15625, {
        lineBreak: false,
        textWidth: 47.484375,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('decoration', 284.562734375, 75.15625, {
        lineBreak: false,
        textWidth: 56.900390625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(211.76, 83.135859375, 25.318359375, 0.74);
      doc.fill();
      doc.restore();
      doc.save();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(237.078359375, 83.135859375, 47.484375, 0.74);
      doc.fill();
      doc.restore();
      doc.save();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(284.562734375, 83.135859375, 56.900390625, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Overline ', 383.52, 75.15625, {
        lineBreak: false,
        textWidth: 46.177734375,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('decoration', 429.697734375, 75.15625, {
        lineBreak: false,
        textWidth: 56.900390625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(383.52, 76.456171875, 103.078125, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text(' ', 37.029296875, 89.21875, {
        lineBreak: false,
        textWidth: 2.970703125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Dashed ', 40, 103.28125, {
        lineBreak: false,
        textWidth: 43.2890625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('style', 83.2890625, 103.28125, {
        lineBreak: false,
        textWidth: 25.0546875,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.rect(40, 115.732421875, 68.34375, 0.74);
      doc.clip();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(40, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(46.8, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(53.599999999999994, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(60.39999999999999, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(67.19999999999999, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(73.99999999999999, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(80.79999999999998, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(87.59999999999998, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(94.39999999999998, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(101.19999999999997, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.rect(107.99999999999997, 115.362421875, 3.96, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Dotted ', 168.82, 103.28125, {
        lineBreak: false,
        textWidth: 38.6484375,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('style', 207.4684375, 103.28125, {
        lineBreak: false,
        textWidth: 25.0546875,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.rect(168.82, 115.732421875, 63.703125, 0.74);
      doc.clip();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(168.82, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(171.04, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(173.26, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(175.48, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(177.7, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(179.92, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(182.14, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(184.35999999999999, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(186.57999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(188.79999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(191.01999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(193.23999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(195.45999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(197.67999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(199.89999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(202.11999999999998, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(204.33999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(206.55999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(208.77999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(210.99999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(213.21999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(215.43999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(217.65999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(219.87999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(222.09999999999997, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(224.31999999999996, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(226.53999999999996, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(228.75999999999996, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.rect(230.97999999999996, 115.362421875, 0.74, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Double ', 297.64, 103.28125, {
        lineBreak: false,
        textWidth: 40.30078125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('style', 337.94078125, 103.28125, {
        lineBreak: false,
        textWidth: 25.0546875,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.rect(297.64, 115.362421875, 65.35546875, 0.37);
      doc.fill();
      doc.rect(297.64, 116.842421875, 65.35546875, 0.37);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Wavy ', 426.46, 103.28125, {
        lineBreak: false,
        textWidth: 31.353515625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('style', 457.813515625, 103.28125, {
        lineBreak: false,
        textWidth: 25.0546875,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.rect(426.46, 114.732421875, 56.408203125, 116.732421875);
      doc.clip();
      doc.lineWidth(0.24);
      doc.moveTo(425.46, 115.732421875);
      doc.bezierCurveTo(
        426.15999999999997,
        114.732421875,
        426.85999999999996,
        114.732421875,
        427.56,
        115.732421875
      );
      doc.bezierCurveTo(
        428.26,
        116.732421875,
        428.96,
        116.732421875,
        429.65999999999997,
        115.732421875
      );
      doc.bezierCurveTo(
        430.35999999999996,
        114.732421875,
        431.05999999999995,
        114.732421875,
        431.76,
        115.732421875
      );
      doc.bezierCurveTo(
        432.46,
        116.732421875,
        433.15999999999997,
        116.732421875,
        433.85999999999996,
        115.732421875
      );
      doc.bezierCurveTo(
        434.55999999999995,
        114.732421875,
        435.25999999999993,
        114.732421875,
        435.96,
        115.732421875
      );
      doc.bezierCurveTo(
        436.65999999999997,
        116.732421875,
        437.35999999999996,
        116.732421875,
        438.05999999999995,
        115.732421875
      );
      doc.bezierCurveTo(
        438.75999999999993,
        114.732421875,
        439.4599999999999,
        114.732421875,
        440.15999999999997,
        115.732421875
      );
      doc.bezierCurveTo(
        440.85999999999996,
        116.732421875,
        441.55999999999995,
        116.732421875,
        442.25999999999993,
        115.732421875
      );
      doc.bezierCurveTo(
        442.9599999999999,
        114.732421875,
        443.6599999999999,
        114.732421875,
        444.35999999999996,
        115.732421875
      );
      doc.bezierCurveTo(
        445.05999999999995,
        116.732421875,
        445.75999999999993,
        116.732421875,
        446.4599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        447.1599999999999,
        114.732421875,
        447.8599999999999,
        114.732421875,
        448.55999999999995,
        115.732421875
      );
      doc.bezierCurveTo(
        449.25999999999993,
        116.732421875,
        449.9599999999999,
        116.732421875,
        450.6599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        451.3599999999999,
        114.732421875,
        452.0599999999999,
        114.732421875,
        452.75999999999993,
        115.732421875
      );
      doc.bezierCurveTo(
        453.4599999999999,
        116.732421875,
        454.1599999999999,
        116.732421875,
        454.8599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        455.5599999999999,
        114.732421875,
        456.2599999999999,
        114.732421875,
        456.9599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        457.6599999999999,
        116.732421875,
        458.3599999999999,
        116.732421875,
        459.0599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        459.7599999999999,
        114.732421875,
        460.45999999999987,
        114.732421875,
        461.1599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        461.8599999999999,
        116.732421875,
        462.5599999999999,
        116.732421875,
        463.2599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        463.95999999999987,
        114.732421875,
        464.65999999999985,
        114.732421875,
        465.3599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        466.0599999999999,
        116.732421875,
        466.7599999999999,
        116.732421875,
        467.45999999999987,
        115.732421875
      );
      doc.bezierCurveTo(
        468.15999999999985,
        114.732421875,
        468.85999999999984,
        114.732421875,
        469.5599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        470.2599999999999,
        116.732421875,
        470.95999999999987,
        116.732421875,
        471.65999999999985,
        115.732421875
      );
      doc.bezierCurveTo(
        472.35999999999984,
        114.732421875,
        473.05999999999983,
        114.732421875,
        473.7599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        474.45999999999987,
        116.732421875,
        475.15999999999985,
        116.732421875,
        475.85999999999984,
        115.732421875
      );
      doc.bezierCurveTo(
        476.55999999999983,
        114.732421875,
        477.2599999999998,
        114.732421875,
        477.95999999999987,
        115.732421875
      );
      doc.bezierCurveTo(
        478.65999999999985,
        116.732421875,
        479.35999999999984,
        116.732421875,
        480.05999999999983,
        115.732421875
      );
      doc.bezierCurveTo(
        480.7599999999998,
        114.732421875,
        481.4599999999998,
        114.732421875,
        482.15999999999985,
        115.732421875
      );
      doc.bezierCurveTo(
        482.85999999999984,
        116.732421875,
        483.55999999999983,
        116.732421875,
        484.2599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        484.9599999999998,
        114.732421875,
        485.6599999999998,
        114.732421875,
        486.35999999999984,
        115.732421875
      );
      doc.bezierCurveTo(
        487.05999999999983,
        116.732421875,
        487.7599999999998,
        116.732421875,
        488.4599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        489.1599999999998,
        114.732421875,
        489.8599999999998,
        114.732421875,
        490.55999999999983,
        115.732421875
      );
      doc.bezierCurveTo(
        491.2599999999998,
        116.732421875,
        491.9599999999998,
        116.732421875,
        492.6599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        493.3599999999998,
        114.732421875,
        494.0599999999998,
        114.732421875,
        494.7599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        495.4599999999998,
        116.732421875,
        496.1599999999998,
        116.732421875,
        496.8599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        497.5599999999998,
        114.732421875,
        498.25999999999976,
        114.732421875,
        498.9599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        499.6599999999998,
        116.732421875,
        500.3599999999998,
        116.732421875,
        501.0599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        501.75999999999976,
        114.732421875,
        502.45999999999975,
        114.732421875,
        503.1599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        503.8599999999998,
        116.732421875,
        504.5599999999998,
        116.732421875,
        505.25999999999976,
        115.732421875
      );
      doc.bezierCurveTo(
        505.95999999999975,
        114.732421875,
        506.65999999999974,
        114.732421875,
        507.3599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        508.0599999999998,
        116.732421875,
        508.75999999999976,
        116.732421875,
        509.45999999999975,
        115.732421875
      );
      doc.bezierCurveTo(
        510.15999999999974,
        114.732421875,
        510.85999999999973,
        114.732421875,
        511.5599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        512.2599999999998,
        116.732421875,
        512.9599999999998,
        116.732421875,
        513.6599999999997,
        115.732421875
      );
      doc.bezierCurveTo(
        514.3599999999998,
        114.732421875,
        515.0599999999997,
        114.732421875,
        515.7599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        516.4599999999997,
        116.732421875,
        517.1599999999997,
        116.732421875,
        517.8599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        518.5599999999998,
        114.732421875,
        519.2599999999998,
        114.732421875,
        519.9599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        520.6599999999997,
        116.732421875,
        521.3599999999998,
        116.732421875,
        522.0599999999998,
        115.732421875
      );
      doc.bezierCurveTo(
        522.7599999999999,
        114.732421875,
        523.4599999999998,
        114.732421875,
        524.1599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        524.8599999999998,
        116.732421875,
        525.5599999999998,
        116.732421875,
        526.2599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        526.9599999999999,
        114.732421875,
        527.6599999999999,
        114.732421875,
        528.3599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        529.0599999999998,
        116.732421875,
        529.7599999999999,
        116.732421875,
        530.4599999999999,
        115.732421875
      );
      doc.bezierCurveTo(
        531.16,
        114.732421875,
        531.8599999999999,
        114.732421875,
        532.56,
        115.732421875
      );
      doc.bezierCurveTo(
        533.2599999999999,
        116.732421875,
        533.9599999999999,
        116.732421875,
        534.66,
        115.732421875
      );
      doc.bezierCurveTo(
        535.36,
        114.732421875,
        536.06,
        114.732421875,
        536.76,
        115.732421875
      );
      doc.bezierCurveTo(
        537.4599999999999,
        116.732421875,
        538.16,
        116.732421875,
        538.86,
        115.732421875
      );
      doc.bezierCurveTo(
        539.5600000000001,
        114.732421875,
        540.26,
        114.732421875,
        540.96,
        115.732421875
      );
      doc.bezierCurveTo(
        541.66,
        116.732421875,
        542.36,
        116.732421875,
        543.0600000000001,
        115.732421875
      );
      doc.bezierCurveTo(
        543.7600000000001,
        114.732421875,
        544.46,
        114.732421875,
        545.1600000000001,
        115.732421875
      );
      doc.bezierCurveTo(
        545.86,
        116.732421875,
        546.5600000000001,
        116.732421875,
        547.2600000000001,
        115.732421875
      );
      doc.bezierCurveTo(
        547.9600000000002,
        114.732421875,
        548.6600000000001,
        114.732421875,
        549.3600000000001,
        115.732421875
      );
      doc.bezierCurveTo(
        550.0600000000001,
        116.732421875,
        550.7600000000001,
        116.732421875,
        551.4600000000002,
        115.732421875
      );
      doc.bezierCurveTo(
        552.1600000000002,
        114.732421875,
        552.8600000000001,
        114.732421875,
        553.5600000000002,
        115.732421875
      );
      doc.bezierCurveTo(
        554.2600000000001,
        116.732421875,
        554.9600000000002,
        116.732421875,
        555.6600000000002,
        115.732421875
      );
      doc.bezierCurveTo(
        556.3600000000002,
        114.732421875,
        557.0600000000002,
        114.732421875,
        557.7600000000002,
        115.732421875
      );
      doc.bezierCurveTo(
        558.4600000000002,
        116.732421875,
        559.1600000000002,
        116.732421875,
        559.8600000000002,
        115.732421875
      );
      doc.bezierCurveTo(
        560.5600000000003,
        114.732421875,
        561.2600000000002,
        114.732421875,
        561.9600000000003,
        115.732421875
      );
      doc.bezierCurveTo(
        562.6600000000002,
        116.732421875,
        563.3600000000002,
        116.732421875,
        564.0600000000003,
        115.732421875
      );
      doc.bezierCurveTo(
        564.7600000000003,
        114.732421875,
        565.4600000000003,
        114.732421875,
        566.1600000000003,
        115.732421875
      );
      doc.bezierCurveTo(
        566.8600000000002,
        116.732421875,
        567.5600000000003,
        116.732421875,
        568.2600000000003,
        115.732421875
      );
      doc.bezierCurveTo(
        568.9600000000004,
        114.732421875,
        569.6600000000003,
        114.732421875,
        570.3600000000004,
        115.732421875
      );
      doc.bezierCurveTo(
        571.0600000000003,
        116.732421875,
        571.7600000000003,
        116.732421875,
        572.4600000000004,
        115.732421875
      );
      doc.bezierCurveTo(
        573.1600000000004,
        114.732421875,
        573.8600000000004,
        114.732421875,
        574.5600000000004,
        115.732421875
      );
      doc.bezierCurveTo(
        575.2600000000003,
        116.732421875,
        575.9600000000004,
        116.732421875,
        576.6600000000004,
        115.732421875
      );
      doc.bezierCurveTo(
        577.3600000000005,
        114.732421875,
        578.0600000000004,
        114.732421875,
        578.7600000000004,
        115.732421875
      );
      doc.bezierCurveTo(
        579.4600000000004,
        116.732421875,
        580.1600000000004,
        116.732421875,
        580.8600000000005,
        115.732421875
      );
      doc.bezierCurveTo(
        581.5600000000005,
        114.732421875,
        582.2600000000004,
        114.732421875,
        582.9600000000005,
        115.732421875
      );
      doc.bezierCurveTo(
        583.6600000000004,
        116.732421875,
        584.3600000000005,
        116.732421875,
        585.0600000000005,
        115.732421875
      );
      doc.bezierCurveTo(
        585.7600000000006,
        114.732421875,
        586.4600000000005,
        114.732421875,
        587.1600000000005,
        115.732421875
      );
      doc.bezierCurveTo(
        587.8600000000005,
        116.732421875,
        588.5600000000005,
        116.732421875,
        589.2600000000006,
        115.732421875
      );
      doc.bezierCurveTo(
        589.9600000000006,
        114.732421875,
        590.6600000000005,
        114.732421875,
        591.3600000000006,
        115.732421875
      );
      doc.bezierCurveTo(
        592.0600000000005,
        116.732421875,
        592.7600000000006,
        116.732421875,
        593.4600000000006,
        115.732421875
      );
      doc.bezierCurveTo(
        594.1600000000007,
        114.732421875,
        594.8600000000006,
        114.732421875,
        595.5600000000006,
        115.732421875
      );
      doc.bezierCurveTo(
        596.2600000000006,
        116.732421875,
        596.9600000000006,
        116.732421875,
        597.6600000000007,
        115.732421875
      );
      doc.bezierCurveTo(
        598.3600000000007,
        114.732421875,
        599.0600000000006,
        114.732421875,
        599.7600000000007,
        115.732421875
      );
      doc.bezierCurveTo(
        600.4600000000006,
        116.732421875,
        601.1600000000007,
        116.732421875,
        601.8600000000007,
        115.732421875
      );
      doc.stroke('black');
      doc.strokeColor('black');
      doc.strokeOpacity(undefined);
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text(' ', 37.029296875, 117.34375, {
        lineBreak: false,
        textWidth: 2.970703125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Using ', 40, 131.40625, {
        lineBreak: false,
        textWidth: 33.205078125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('colors', 73.205078125, 131.40625, {
        lineBreak: false,
        textWidth: 33.12890625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.fillColor('blue');
      doc.fillOpacity(undefined);
      doc.rect(40, 143.487421875, 66.333984375, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Using ', 211.76, 131.40625, {
        lineBreak: false,
        textWidth: 33.205078125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('colors', 244.965078125, 131.40625, {
        lineBreak: false,
        textWidth: 33.12890625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.fillColor('red');
      doc.fillOpacity(undefined);
      doc.rect(211.76, 139.385859375, 33.205078125, 0.74);
      doc.fill();
      doc.restore();
      doc.save();
      doc.fillColor('red');
      doc.fillOpacity(undefined);
      doc.rect(244.965078125, 139.385859375, 33.12890625, 0.74);
      doc.fill();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('Using ', 383.52, 131.40625, {
        lineBreak: false,
        textWidth: 33.205078125,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.fill('black');
      doc.fillColor('black');
      doc.fillOpacity(undefined);
      doc.fontSize(12);
      doc.text('colors', 416.725078125, 131.40625, {
        lineBreak: false,
        textWidth: 33.12890625,
        characterSpacing: 0,
        wordCount: 1,
        link: null
      });
      doc.save();
      doc.restore();
      doc.save();
      doc.rect(383.52, 142.857421875, 66.333984375, 144.857421875);
      doc.clip();
      doc.lineWidth(0.24);
      doc.moveTo(382.52, 143.857421875);
      doc.bezierCurveTo(
        383.21999999999997,
        142.857421875,
        383.91999999999996,
        142.857421875,
        384.62,
        143.857421875
      );
      doc.bezierCurveTo(
        385.32,
        144.857421875,
        386.02,
        144.857421875,
        386.71999999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        387.41999999999996,
        142.857421875,
        388.11999999999995,
        142.857421875,
        388.82,
        143.857421875
      );
      doc.bezierCurveTo(
        389.52,
        144.857421875,
        390.21999999999997,
        144.857421875,
        390.91999999999996,
        143.857421875
      );
      doc.bezierCurveTo(
        391.61999999999995,
        142.857421875,
        392.31999999999994,
        142.857421875,
        393.02,
        143.857421875
      );
      doc.bezierCurveTo(
        393.71999999999997,
        144.857421875,
        394.41999999999996,
        144.857421875,
        395.11999999999995,
        143.857421875
      );
      doc.bezierCurveTo(
        395.81999999999994,
        142.857421875,
        396.5199999999999,
        142.857421875,
        397.21999999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        397.91999999999996,
        144.857421875,
        398.61999999999995,
        144.857421875,
        399.31999999999994,
        143.857421875
      );
      doc.bezierCurveTo(
        400.0199999999999,
        142.857421875,
        400.7199999999999,
        142.857421875,
        401.41999999999996,
        143.857421875
      );
      doc.bezierCurveTo(
        402.11999999999995,
        144.857421875,
        402.81999999999994,
        144.857421875,
        403.5199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        404.2199999999999,
        142.857421875,
        404.9199999999999,
        142.857421875,
        405.61999999999995,
        143.857421875
      );
      doc.bezierCurveTo(
        406.31999999999994,
        144.857421875,
        407.0199999999999,
        144.857421875,
        407.7199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        408.4199999999999,
        142.857421875,
        409.1199999999999,
        142.857421875,
        409.81999999999994,
        143.857421875
      );
      doc.bezierCurveTo(
        410.5199999999999,
        144.857421875,
        411.2199999999999,
        144.857421875,
        411.9199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        412.6199999999999,
        142.857421875,
        413.3199999999999,
        142.857421875,
        414.0199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        414.7199999999999,
        144.857421875,
        415.4199999999999,
        144.857421875,
        416.1199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        416.8199999999999,
        142.857421875,
        417.51999999999987,
        142.857421875,
        418.2199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        418.9199999999999,
        144.857421875,
        419.6199999999999,
        144.857421875,
        420.3199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        421.01999999999987,
        142.857421875,
        421.71999999999986,
        142.857421875,
        422.4199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        423.1199999999999,
        144.857421875,
        423.8199999999999,
        144.857421875,
        424.51999999999987,
        143.857421875
      );
      doc.bezierCurveTo(
        425.21999999999986,
        142.857421875,
        425.91999999999985,
        142.857421875,
        426.6199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        427.3199999999999,
        144.857421875,
        428.01999999999987,
        144.857421875,
        428.71999999999986,
        143.857421875
      );
      doc.bezierCurveTo(
        429.41999999999985,
        142.857421875,
        430.11999999999983,
        142.857421875,
        430.8199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        431.51999999999987,
        144.857421875,
        432.21999999999986,
        144.857421875,
        432.91999999999985,
        143.857421875
      );
      doc.bezierCurveTo(
        433.61999999999983,
        142.857421875,
        434.3199999999998,
        142.857421875,
        435.01999999999987,
        143.857421875
      );
      doc.bezierCurveTo(
        435.71999999999986,
        144.857421875,
        436.41999999999985,
        144.857421875,
        437.11999999999983,
        143.857421875
      );
      doc.bezierCurveTo(
        437.8199999999998,
        142.857421875,
        438.5199999999998,
        142.857421875,
        439.21999999999986,
        143.857421875
      );
      doc.bezierCurveTo(
        439.91999999999985,
        144.857421875,
        440.61999999999983,
        144.857421875,
        441.3199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        442.0199999999998,
        142.857421875,
        442.7199999999998,
        142.857421875,
        443.41999999999985,
        143.857421875
      );
      doc.bezierCurveTo(
        444.11999999999983,
        144.857421875,
        444.8199999999998,
        144.857421875,
        445.5199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        446.2199999999998,
        142.857421875,
        446.9199999999998,
        142.857421875,
        447.61999999999983,
        143.857421875
      );
      doc.bezierCurveTo(
        448.3199999999998,
        144.857421875,
        449.0199999999998,
        144.857421875,
        449.7199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        450.4199999999998,
        142.857421875,
        451.1199999999998,
        142.857421875,
        451.8199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        452.5199999999998,
        144.857421875,
        453.2199999999998,
        144.857421875,
        453.9199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        454.6199999999998,
        142.857421875,
        455.31999999999977,
        142.857421875,
        456.0199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        456.7199999999998,
        144.857421875,
        457.4199999999998,
        144.857421875,
        458.1199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        458.81999999999977,
        142.857421875,
        459.51999999999975,
        142.857421875,
        460.2199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        460.9199999999998,
        144.857421875,
        461.6199999999998,
        144.857421875,
        462.31999999999977,
        143.857421875
      );
      doc.bezierCurveTo(
        463.01999999999975,
        142.857421875,
        463.71999999999974,
        142.857421875,
        464.4199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        465.1199999999998,
        144.857421875,
        465.81999999999977,
        144.857421875,
        466.51999999999975,
        143.857421875
      );
      doc.bezierCurveTo(
        467.21999999999974,
        142.857421875,
        467.91999999999973,
        142.857421875,
        468.6199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        469.31999999999977,
        144.857421875,
        470.01999999999975,
        144.857421875,
        470.71999999999974,
        143.857421875
      );
      doc.bezierCurveTo(
        471.41999999999973,
        142.857421875,
        472.1199999999997,
        142.857421875,
        472.81999999999977,
        143.857421875
      );
      doc.bezierCurveTo(
        473.51999999999975,
        144.857421875,
        474.21999999999974,
        144.857421875,
        474.91999999999973,
        143.857421875
      );
      doc.bezierCurveTo(
        475.6199999999997,
        142.857421875,
        476.3199999999997,
        142.857421875,
        477.01999999999975,
        143.857421875
      );
      doc.bezierCurveTo(
        477.71999999999974,
        144.857421875,
        478.41999999999973,
        144.857421875,
        479.1199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        479.8199999999997,
        142.857421875,
        480.5199999999997,
        142.857421875,
        481.21999999999974,
        143.857421875
      );
      doc.bezierCurveTo(
        481.91999999999973,
        144.857421875,
        482.6199999999997,
        144.857421875,
        483.3199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        484.0199999999997,
        142.857421875,
        484.7199999999997,
        142.857421875,
        485.41999999999973,
        143.857421875
      );
      doc.bezierCurveTo(
        486.1199999999997,
        144.857421875,
        486.8199999999997,
        144.857421875,
        487.5199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        488.2199999999997,
        142.857421875,
        488.9199999999997,
        142.857421875,
        489.6199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        490.3199999999997,
        144.857421875,
        491.0199999999997,
        144.857421875,
        491.7199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        492.4199999999997,
        142.857421875,
        493.11999999999966,
        142.857421875,
        493.8199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        494.5199999999997,
        144.857421875,
        495.2199999999997,
        144.857421875,
        495.9199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        496.61999999999966,
        142.857421875,
        497.31999999999965,
        142.857421875,
        498.0199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        498.7199999999997,
        144.857421875,
        499.4199999999997,
        144.857421875,
        500.11999999999966,
        143.857421875
      );
      doc.bezierCurveTo(
        500.81999999999965,
        142.857421875,
        501.51999999999964,
        142.857421875,
        502.2199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        502.9199999999997,
        144.857421875,
        503.61999999999966,
        144.857421875,
        504.31999999999965,
        143.857421875
      );
      doc.bezierCurveTo(
        505.01999999999964,
        142.857421875,
        505.71999999999963,
        142.857421875,
        506.4199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        507.11999999999966,
        144.857421875,
        507.81999999999965,
        144.857421875,
        508.51999999999964,
        143.857421875
      );
      doc.bezierCurveTo(
        509.21999999999963,
        142.857421875,
        509.9199999999996,
        142.857421875,
        510.61999999999966,
        143.857421875
      );
      doc.bezierCurveTo(
        511.31999999999965,
        144.857421875,
        512.0199999999996,
        144.857421875,
        512.7199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        513.4199999999997,
        142.857421875,
        514.1199999999997,
        142.857421875,
        514.8199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        515.5199999999996,
        144.857421875,
        516.2199999999997,
        144.857421875,
        516.9199999999997,
        143.857421875
      );
      doc.bezierCurveTo(
        517.6199999999998,
        142.857421875,
        518.3199999999997,
        142.857421875,
        519.0199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        519.7199999999997,
        144.857421875,
        520.4199999999997,
        144.857421875,
        521.1199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        521.8199999999998,
        142.857421875,
        522.5199999999998,
        142.857421875,
        523.2199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        523.9199999999997,
        144.857421875,
        524.6199999999998,
        144.857421875,
        525.3199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        526.0199999999999,
        142.857421875,
        526.7199999999998,
        142.857421875,
        527.4199999999998,
        143.857421875
      );
      doc.bezierCurveTo(
        528.1199999999998,
        144.857421875,
        528.8199999999998,
        144.857421875,
        529.5199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        530.2199999999999,
        142.857421875,
        530.9199999999998,
        142.857421875,
        531.6199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        532.3199999999998,
        144.857421875,
        533.0199999999999,
        144.857421875,
        533.7199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        534.42,
        142.857421875,
        535.1199999999999,
        142.857421875,
        535.8199999999999,
        143.857421875
      );
      doc.bezierCurveTo(
        536.5199999999999,
        144.857421875,
        537.2199999999999,
        144.857421875,
        537.92,
        143.857421875
      );
      doc.bezierCurveTo(
        538.62,
        142.857421875,
        539.3199999999999,
        142.857421875,
        540.02,
        143.857421875
      );
      doc.bezierCurveTo(
        540.7199999999999,
        144.857421875,
        541.42,
        144.857421875,
        542.12,
        143.857421875
      );
      doc.bezierCurveTo(
        542.82,
        142.857421875,
        543.52,
        142.857421875,
        544.22,
        143.857421875
      );
      doc.bezierCurveTo(
        544.92,
        144.857421875,
        545.62,
        144.857421875,
        546.32,
        143.857421875
      );
      doc.bezierCurveTo(
        547.0200000000001,
        142.857421875,
        547.72,
        142.857421875,
        548.4200000000001,
        143.857421875
      );
      doc.bezierCurveTo(
        549.12,
        144.857421875,
        549.82,
        144.857421875,
        550.5200000000001,
        143.857421875
      );
      doc.bezierCurveTo(
        551.2200000000001,
        142.857421875,
        551.9200000000001,
        142.857421875,
        552.6200000000001,
        143.857421875
      );
      doc.bezierCurveTo(
        553.32,
        144.857421875,
        554.0200000000001,
        144.857421875,
        554.7200000000001,
        143.857421875
      );
      doc.bezierCurveTo(
        555.4200000000002,
        142.857421875,
        556.1200000000001,
        142.857421875,
        556.8200000000002,
        143.857421875
      );
      doc.bezierCurveTo(
        557.5200000000001,
        144.857421875,
        558.2200000000001,
        144.857421875,
        558.9200000000002,
        143.857421875
      );
      doc.bezierCurveTo(
        559.6200000000002,
        142.857421875,
        560.3200000000002,
        142.857421875,
        561.0200000000002,
        143.857421875
      );
      doc.bezierCurveTo(
        561.7200000000001,
        144.857421875,
        562.4200000000002,
        144.857421875,
        563.1200000000002,
        143.857421875
      );
      doc.bezierCurveTo(
        563.8200000000003,
        142.857421875,
        564.5200000000002,
        142.857421875,
        565.2200000000003,
        143.857421875
      );
      doc.bezierCurveTo(
        565.9200000000002,
        144.857421875,
        566.6200000000002,
        144.857421875,
        567.3200000000003,
        143.857421875
      );
      doc.bezierCurveTo(
        568.0200000000003,
        142.857421875,
        568.7200000000003,
        142.857421875,
        569.4200000000003,
        143.857421875
      );
      doc.bezierCurveTo(
        570.1200000000002,
        144.857421875,
        570.8200000000003,
        144.857421875,
        571.5200000000003,
        143.857421875
      );
      doc.bezierCurveTo(
        572.2200000000004,
        142.857421875,
        572.9200000000003,
        142.857421875,
        573.6200000000003,
        143.857421875
      );
      doc.bezierCurveTo(
        574.3200000000003,
        144.857421875,
        575.0200000000003,
        144.857421875,
        575.7200000000004,
        143.857421875
      );
      doc.bezierCurveTo(
        576.4200000000004,
        142.857421875,
        577.1200000000003,
        142.857421875,
        577.8200000000004,
        143.857421875
      );
      doc.bezierCurveTo(
        578.5200000000003,
        144.857421875,
        579.2200000000004,
        144.857421875,
        579.9200000000004,
        143.857421875
      );
      doc.bezierCurveTo(
        580.6200000000005,
        142.857421875,
        581.3200000000004,
        142.857421875,
        582.0200000000004,
        143.857421875
      );
      doc.bezierCurveTo(
        582.7200000000004,
        144.857421875,
        583.4200000000004,
        144.857421875,
        584.1200000000005,
        143.857421875
      );
      doc.bezierCurveTo(
        584.8200000000005,
        142.857421875,
        585.5200000000004,
        142.857421875,
        586.2200000000005,
        143.857421875
      );
      doc.bezierCurveTo(
        586.9200000000004,
        144.857421875,
        587.6200000000005,
        144.857421875,
        588.3200000000005,
        143.857421875
      );
      doc.stroke('green');
      doc.strokeColor('green');
      doc.strokeOpacity(undefined);
      doc.restore();
    });
  });
});
